IDLsysMonitorInfo
The IDLsysMonitorInfo object contains information about the display monitor or monitors attached to your system. Use this object to obtain information about the monitor(s) when building applications that use multiple monitors. For additional information on monitor and multi-monitor support, see Overview of Multi-Monitor Support.
Superclasses
None
Creation
Properties
Objects of this class have the following properties. See IDLsysMonitorInfo Properties for details on individual properties.
In addition, objects of this class inherit the properties of the superclass of this class.
Methods
This class has the following methods:
- IDLsysMonitorInfo::Cleanup
- IDLsysMonitorInfo::GetMonitorNames
- IDLsysMonitorInfo::GetNumberOfMonitors
- IDLsysMonitorInfo::GetPrimaryMonitorIndex
- IDLsysMonitorInfo::GetProperty
- IDLsysMonitorInfo::GetRectangles
- IDLsysMonitorInfo::GetResolutions
- IDLsysMonitorInfo::Init
- IDLsysMonitorInfo::IsExtendedDesktop
- IDLsysMonitorInfo::SetProperty
In addition, this class inherits the methods of its superclass.
Examples
Version History
6.3 |
Introduced |
Overview of Multi-Monitor Support
The IDLsysMonitorInfo object returns information about display monitors available to IDL. This information allows you to create applications that can run in single- or multi-monitor environments.
Information returned by the IDLsysMonitorInfo object can be used by any IDL application to control window position.
Monitor information is collected for the default display system. On UNIX systems, you can direct the object to collect the information on a specific X Display connection. Information in the IDLsysMonitorInfo object is read-only, except for the X Display name.
The following sections provide information about working with monitor and multi-monitor support and configuration.
Arrays of Monitor Information
The IDLsysMonitorInfo class provides function methods that return arrays containing monitor information. Each row in an array contains information for a specific monitor. Use a particular row index when accessing each array to retrieve information for a particular monitor.
For example, if there are at least two monitors on the system and monitor number 1 (0-based) is the monitor the application wishes to use to display a GUI:
res = oMonitorInfo->GetResolutions()
rect = oMonitorInfo->GetRectangles()
GUIMonitorResolution = res[*,1]
GUIMonitorRectangle = rect[*,1]
If there is only one monitor on the system, the function methods return a single-row array or vector whose length depends on the particular method.
Restoring Monitor Information Objects
When a monitor information object is restored from a SAVE file, it collects monitor information from the system that is restoring the object, taking into account any saved display name in the DISPLAY_NAME property. Thus, the object updates itself to reflect the monitor information for the system restoring the object. Applications performing the restore will likely need to retrieve the monitor information for the current system and reconfigure themselves accordingly.
Configuration Changes and Active IDL Applications
On Windows systems it is possible to reconfigure the operating system to add or remove monitors while an IDL application is running. IDLsysMonitorInfo returns monitor information for the configuration that is in effect at the time the information is requested. If an IDL application wishes to take into account any monitor configuration changes made while the application is running, it should re-query the information from this class immediately prior to creating any windows that require this information for positioning.
On UNIX systems, IDL does not detect configuration changes. You will need to restart IDL if you change the configuration.
X Windows and XINERAMA Awareness
On some UNIX systems, the XINERAMA X Windows extension is used by X servers to present multiple Screens/monitors to the X client application as a single X Screen that covers all the monitors, much like the extended desktop on Windows systems. Because the XINERAMA extension is not available on all UNIX platforms, the IDLsysMonitorInfo class returns different information depending on the available XINERAMA support (in IDL 6.3, only macOS and some Linux distributions support XINERAMA). Additionally, XINERAMA includes queries that the X client application can use to learn about the location and size of the monitors. XINERAMA-aware client applications have access to additional information about the monitor configuration. Thus, you can retrieve the maximum amount of monitor configuration information if both client and server support XINERAMA. Table 10.2 details the information available in all possible client-server combinations.
Client supports |
Server supports XINERAMA? |
|
Yes |
No |
|
Yes: IDL running on Linux, OS X |
IDL detects extended desktop with monitor information for each physical monitor. |
IDL detects independent desktops with monitor information for each physical monitor. |
No: IDL running on other UNIX platforms |
IDL detects extended desktop with monitor information for single desktop spanning all monitors. Individual monitor information is not available. |
IDL detects independent desktops with monitor information for each physical monitor |
For more information on multi-monitor support and various platforms, see Multi-Monitor Configurations.